From: Florian Müllner Date: Sun, 31 Jul 2022 23:30:12 +0000 (+0200) Subject: status/network: Simplify notification code X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~461^2^2~138 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=c33b5de174f0464ef0e2062c17cabf4c1a3a57c0;p=gnome-shell.git status/network: Simplify notification code There is only one case where we show a notification: When activating a connection failed. There is therefore no reason for a generic wrapper around the notification API. Likewise, tracking the source is a bit pointless, given that the notification is transient. In fact, as we destroy an existing notification *before* checking for the source, any previous source will be gone by that point. Part-of: --- diff --git a/js/ui/status/network.js b/js/ui/status/network.js index c31797a4a..db604be4d 100644 --- a/js/ui/status/network.js +++ b/js/ui/status/network.js @@ -1814,17 +1814,6 @@ class Indicator extends PanelMenu.SystemIndicator { this.menu.setSensitive(sensitive); } - _ensureSource() { - if (!this._source) { - this._source = new MessageTray.Source(_("Network Manager"), - 'network-transmit-receive'); - this._source.policy = new MessageTray.NotificationApplicationPolicy('gnome-network-panel'); - - this._source.connect('destroy', () => (this._source = null)); - Main.messageTray.add(this._source); - } - } - _readDevices() { let devices = this._client.get_devices() || []; for (let i = 0; i < devices.length; ++i) { @@ -1837,29 +1826,24 @@ class Indicator extends PanelMenu.SystemIndicator { this._syncDeviceNames(); } - _notify(iconName, title, text, urgency) { - if (this._notification) - this._notification.destroy(); + _onActivationFailed() { + this._notification?.destroy(); - this._ensureSource(); + const source = new MessageTray.Source( + _('Network Manager'), 'network-error-symbolic'); + source.policy = + new MessageTray.NotificationApplicationPolicy('gnome-network-panel'); - let gicon = new Gio.ThemedIcon({ name: iconName }); - this._notification = new MessageTray.Notification(this._source, title, text, { gicon }); - this._notification.setUrgency(urgency); + this._notification = new MessageTray.Notification(source, + _('Connection failed'), + _('Activation of network connection failed')); + this._notification.setUrgency(MessageTray.Urgency.HIGH); this._notification.setTransient(true); - this._notification.connect('destroy', () => { - this._notification = null; - }); - this._source.showNotification(this._notification); - } + this._notification.connect('destroy', + () => (this._notification = null)); - _onActivationFailed() { - // XXX: nm-applet has no special text depending on reason - // but I'm not sure of this generic message - this._notify('network-error-symbolic', - _("Connection failed"), - _("Activation of network connection failed"), - MessageTray.Urgency.HIGH); + Main.messageTray.add(source); + source.showNotification(this._notification); } _syncDeviceNames() {